package org.richin.collection.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class test {
	//合并两个已经排序的LIST
	public void mergeArray(ArrayList<String> list1, ArrayList<String> list2) {
		int i = 0;
		int j = 0;
		ArrayList<String> notMatch = new ArrayList<String>();
		ArrayList<String> match = new ArrayList<String>();

		while (i < list1.size() && j < list2.size()) {
			if (list1.get(i).compareTo(list2.get(j)) < 0) {
				notMatch.add(list1.get(i));
				i++;
			} else if (list1.get(i).compareTo(list2.get(j)) == 0) {
				match.add(list1.get(i));
				i++;
				j++;
			} else {
				notMatch.add(list2.get(j));
				j++;
			}
		}

		// add remaining items
		while (i < list1.size()) {
			notMatch.add(list1.get(i));
			i++;
		}

		while (j < list2.size()) {
			notMatch.add(list2.get(j));
			j++;
		}
	      //print
        for (i = 0; i < notMatch.size(); i++) {
            System.out.println(notMatch.get(i));
        }
        System.out.println("*****************");
        for (j = 0; j < match.size(); j++) {
            System.out.println(match.get(j));
        }

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ArrayList<String> list1 = new ArrayList<String>();
        list1.add("abc");
        list1.add("abcd");
        list1.add("ert");
        list1.add("ghj");
        ArrayList<String> list2 = new ArrayList<String>();
        list2.add("bcv");
        list2.add("cxz");
        list2.add("ert");
        new test().mergeArray(list1, list2);

	}

}
